// 解题思路：
// 给定一个身高数组，一个姓名数组，按照身高排序，返回对应的姓名
// 建立下标数组，将数组填上下标
// 根据身高数组对下标数组进行排序
// 建立返回值字符串数组
// 将姓名数组中的名字，按照下标的顺序加入到返回数组中并返回

import java.util.*;
public class Solution {
    public String[] sortPeople(String[] names, int[] heights) {
        int n = heights.length;
        Integer[] index = new Integer[n];
        for(int i = 0; i < n; i++) index[i] = i;

        Arrays.sort(index, (a, b) -> heights[b] - heights[a]);

        String[] ret = new String[n];
        for(int i = 0; i < n; i++){
            ret[i] = names[index[i]];
        }
        return ret;
    }
}
